package Song.Han.Demo02;

import java.util.ArrayList;
import java.util.Iterator;

/*
* 泛型的通配符：
*   ?：代表任意的数据类型
* 使用方式：
*   不能创建对象使用
*   只能作为方法的参数使用
* */
public class Demo05Generic {
    public static void main(String[] args) {
        ArrayList<Integer> list1 = new ArrayList<>();
        list1.add(1);
        list1.add(2);

        ArrayList<String> list2 = new ArrayList<String>();
        list2.add("a");
        list2.add("b");

        //ArrayList<?> list3 = new ArrayList<?>();

        printArrayList(list1);
        printArrayList(list2);

    }

    //定义一个可以遍历所有类型的Arraylist集合的方法
    //这时候我们不知道Arraylist集合使用的数据类型，可以使用泛型的通配符？来接受数据类型
    //注意：泛型没有继承概念
    public static void printArrayList(ArrayList<?> list){
        Iterator<?> it = list.iterator();
        while (it.hasNext()){
            Object obj = it.next();
            System.out.println(obj);
        }
    }
}
